﻿using System;
using System.Collections.Generic;

namespace Hibiku.Twitter
{
    public interface ITwitterApi
    {
        event Action<EStream,IEnumerable<Tweet>> TweetsReceived;

        event EventHandler Unauthorized;

        event EventHandler Authorized;

        bool IsAuthorized { get; }

        AuthorizationResponse Authorization { get; }

        AuthorizationRequest GetAuthorizationRequest();

        void Authorize(string pin, TokenPair requestTokenPair);

        void GetTweets(EStream stream, long? sinceId);

        void Update(string text, long? inReplyToStatusId, Location location);
    }
}
